import com.fz.entity.*;
import com.fz.mapper.MemberMapper;
import com.fz.mapper.StudentMapper;
import com.fz.mapper.TeacherMapper;
import com.fz.mybatis.MyHelper;
import org.junit.Test;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by webrx on 2017-08-29.
 */
public class ccc {
    //一对多 操作
    @Test
    public void tt() {
        //调用工具类连接中央配置
        MyHelper mh = new MyHelper();
        //调用会员信息接口
        MemberMapper ss = mh.getSession().getMapper(MemberMapper.class);

        //输出查询全部数据
        System.out.println(ss.queryAll());

        //实例化member集合 查询member 和 order 表中的数据
        List<Member> pp=ss.queryAll();
        //遍历出member中的数据
        for(Member cc:pp){
            //打印输出member表中 name
            System.out.println(cc.getName());
            //循环出order中的数据
            for(Order dd:cc.getOrders()){
                System.out.println(dd.getOno());
            }
        }

        //通过id查询数据
         System.out.println(ss.queryById(1));

        //实例化Member 查询两表中的数据
        Member me=ss.queryById(1);
        //通过id查询出的name
        System.out.println(me.getName());
         List<Order> oo=me.getOrders();
         for(Order co:oo){
             //通过id查询出的 ono字段
             System.out.println(co.getOno());
         }
    }

    //一对一  操作
        @Test
        public void ct(){
            //调用工具连接主要配置（连接数据库）
            MyHelper mh=new MyHelper();
            //调用teacher 接口
            TeacherMapper ss=mh.getSession().getMapper(TeacherMapper.class);
            //通过id查询数据 一对一 查询老师带的班级
            System.out.println(ss.queryById(1));
            //实例化teacher 查询name
            Teacher te=ss.queryById(1);
            System.out.println(te.getName());
            //实例化dbclass 查询老师带的班
            Dbclass db=te.getSclass();
            System.out.println(db.getCname());
    }

    //动态sql操作  查询 if 条件的查询
    @Test
     public void cct(){
        //通过工具类连接数据库
         MyHelper mh=new MyHelper();
         //调用接口类
         StudentMapper ss=mh.getSession().getMapper(StudentMapper.class);
        // System.out.println(ss.save());
        //实例化map集合 通过键值对 来查询
          Map<String,Object> m=new HashMap<String,Object>();
          //查询  name 中有 航的数据
          m.put("name","%航%");
          //查询 address中有河南的数据
          m.put("address","河南%");
          //查询 score 中100的数据
          m.put("score" ,100);
          //查询id 是49 50 51 的数据
          m.put("ids",new int[]{49,50,51});
          //实例化 Student集合
          List<Student> st=ss.save(m);
          System.out.println(st);
     }

     //动态sql操作 if else 的查询
    @Test
    public void save(){
         MyHelper mh=new MyHelper();
         StudentMapper ss=mh.getSession().getMapper(StudentMapper.class);
         Map<String,Object> m=new HashMap<String ,Object>();
         m.put("address","长葛");
         
         //m.put("name","时玉航");
         List<Student> st=ss.save1(m);
         for(Student sst:st){
             System.out.println(sst);
         }
    }




     //动态sql操作  修改
     @Test
     public void up(){
         MyHelper mh=new MyHelper();
         StudentMapper ss=mh.getSession().getMapper(StudentMapper.class);
         Map<String,Object> m=new HashMap<String,Object>();
         //m.put("score",+9);
         //m.put("name","石宇航");
         //ss.update(m);
//         m.put("name","时玉航");
//         m.put("id",49);
//         ss.up(m);
         mh.getSession().commit();

     }

//插入数据数据
     @Test
    public void insert(){
         MyHelper mh=new MyHelper();
         StudentMapper ss=mh.getSession().getMapper(StudentMapper.class);
         Map<String,Object> m=new HashMap<String,Object>();
         m.put("name","shi");
         m.put("score",100);
         m.put("address","shi");
         ss.insert(m);
         mh.getSession().commit();
     }
     //动态sql语句   根据条件删除数据 也可以删除全部
    @Test
    public void delete(){
        MyHelper mh=new MyHelper();
        StudentMapper ss=mh.getSession().getMapper(StudentMapper.class);
        Map<String,Object> m=new HashMap<String,Object>();
        //m.put("name","石宇航");
        ss.delete(m);
        mh.getSession().commit();
    }


}
